Introdução à Lógica de Programação

Aula 6 - Operadores relacionais e lógicos



Helder Jefferson Ferreira da Luz

helder.luz@ifpr.edu.br

Objetivos da aula

  • Compreender os operadores relacionais e como eles são usados para comparar valores.
  • Entender os operadores lógicos e sua importância em expressões condicionais.
  • Aplicar operadores relacionais e lógicos em problemas práticos.

Introdução aos operadores relacionais

Os operadores relacionais são utilizados para comparar dois valores e retornar um resultado booleano (True ou False).

Eles são usados em expressões condicionais e em controle de fluxo.

Operadores relacionais

Operador Operação Exemplo Resultado
== Igual "5" == 5 True
=== Estritamente igual "5" === 5 False
!= Diferente 3 != 3 False
!== Estritamente diferente "3" !== 3 True
> Maior que 5 > 3 True
< Menor que 3 < 5 True
>= Maior ou igual 5 >= 5 True
<= Menor ou igual 3 <= 5 True

Exemplos de operadores relacionais

Exemplo 1: Comparação simples

let a = 10
let b = 5
let resultado = a != b

console.log(a > b)     // True
console.log(a == 10)   // True
console.log(resultado) // True

Exemplos de operadores relacionais

Diferença entre == e === :

  • == verifica igualdade de valor, mas não de tipo.
  • === verifica igualdade de valor e tipo.

Exemplo 2:

let a = '10'
let b = '10'

console.log(a == b)  // true (valores iguais, tipos diferentes)
console.log(a === b) // false (valores iguais, mas tipos diferentes)

Exemplos de operadores relacionais

Exemplo 3: Comparação de Strings

  • Em JavaScript, as strings podem ser comparadas lexicograficamente (ordem alfabética).
let palavra1 = 'banana'
let palavra2 = 'maçã'

console.log(palavra1 > palavra2)  // false, porque "banana" vem antes de "maçã"

Precedência e associatividade

  • Os operadores relacionais têm o mesmo nível de precedência entre si.
  • A associatividade dos operadores relacionais é da esquerda para a direita.

Introdução aos operadores lógicos

  • Os operadores lógicos são usados para criar expressões condicionais complexas.
  • Eles combinam mais de um teste relacional em uma comparação.
  • Eles retornam True ou False com base nas condições fornecidas.
Operador Operação Exemplo Resultado
&& E (ambas verdadeiras) true && false false
|| Ou (uma ou ambas) true || false true
! Negação (inverte) !true false

Introdução aos operadores lógicos

Tabela verdade

  • A avaliação de uma operação lógica pode ser realizada por meio de tabelas-verdade.

  • Uma tabela-verdade mostra todas as combinações possíveis de valores para os operandos envolvidos em uma proposição lógica.

Tabela verdade

Operador &&

A B A && B
True True True
True False False
False True False
False False False

Operador ||

A B A || B
True True True
True False True
False True True
False False False

Operador !

A !A
True False
False True

Exemplos de operadores lógicos

Exemplo 1: Usando && (and)

let a = 5
let b = 10

console.log(a > 0 && b > 0)  // true, ambos são maiores que 0
console.log(a > 0 && b < 0)  // false, porque b não é menor que 0

Exemplo 2: Usando || (or)

let a = 5
let b = -10

console.log(a > 0 || b > 0)   // true, porque a é maior que 0
console.log(a < 0 || b < 0)   // true, porque b é menor que 0

Exemplos de operadores lógicos

Exemplo 3: Usando ! (not)

let a = 10

console.log(!(a == 10))  // false, porque a é igual a 10, mas o not inverte para False

Precedência dos operadores lógicos

Precedência Operador Descrição
1 ! Negação lógica
2 && E lógico
3 || Ou lógico

Precedência entre os tipos de operadores

Tipos de Operador Operações
Parênteses ()
Operadores Aritméticos **, *, /, %, +, -, ++, --
Operadores Relacionais <, <=, >, >=, !=, ==, ===, !==
Operadores Lógicos !, &&, ||
Operadores de Atribuição =

Precedência entre os tipos de operadores

Exemplo

Qual é o valor da variável resultado ao final da execução do código?
Encontre os valores por meio de um teste de mesa.

let a = 3
let b = 2
let c = 4
let resultado = (a + b) * c < a / b && b ** c >= b - a
console.log(resultado)

Operadores relacionais e lógicos

  • Os operadores relacionais permitem comparar valores e gerar resultados booleanos, enquanto os operadores lógicos ajudam a combinar essas comparações.
  • Essas ferramentas são essenciais para o controle de fluxo e tomada de decisões em JavaScript.

JavaScript Meme

Dúvidas? 🤔

Exercícios

  1. Qual é o valor da variável resultado ao final da execução do código? Encontre o valor sem executar o código.
let x = 7
let y = 3
let z = 2
let resultado = (x % y != 1) || (z ** 2 < x && y != z)
  1. Qual é o valor da variável resultado ao final da execução do código? Encontre o valor sem executar o código.
let p = 8
let q = 4
let r = 2
let resultado = (p - q * r <= q) && (!(r ** 2 > p))
  1. Qual é o valor da variável resultado ao final da execução do código? Encontre o valor sem executar o código.
let a = 12
let b = 5
let c = 8
let d = 3
let resultado = ((a / b > 2) && (c % d == 2)) || (!(a - c < d) && (b * d <= a))

Exercícios

  1. Dada a idade de uma pessoa, verifique se ela é maior de idade (18 anos ou mais).
  2. Verifique se um número é par ou ímpar.
  3. Dada uma nota de 0 a 10, verifique se o aluno foi aprovado. A aprovação requer uma nota maior ou igual a 6.
  4. Verifique se um número é positivo e maior que 100, ou negativo.
  5. Verifique se dois números são iguais e se ambos são maiores que 10.
  6. Receba dois números e verifique se pelo menos um deles é negativo.
  7. Dado um número, verifique se ele é múltiplo de 3 e de 5 ao mesmo tempo.

(3 + 2) * 4 < 3 / 2 && 2 ** 4 >= 2 - 3 5 * 4 < 3 / 2 && 16 >= -1 20 < 1,5 && TRUE FALSE && FALSE FALSE

True

True